#!/usr/bin/env bash

# Copyright (c) 2025 Shenzhen Kaihong Digital Industry Development Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

mv robot_middleware ohmw

srcdir=robot_tools_maestro
cd ${srcdir} || exit 1

cargo fetch || exit 1

if [ "${triple_env}" == "ohos" ]; then
    # fix socket2<0.5
    # FIXME: better way to do this?
    for i in /.cargo/registry/src/*/socket2-*/src/; do
        has_ohos=$(cat $i/sys/unix.rs | grep "target_env = \"ohos\"")
        if [ $? -ne 0 ]; then
            find $i -name '*.rs' -exec sed -i 's/target_env = \"musl\"/target_env = \"ohos\"/g' {} \;
        fi
    done

    # FIXME ohos time_service_ndk is not supported in ohos 4.1, so let time zone be wrong
    for i in /.cargo/registry/src/*/iana-time-zone-*/src/; do
        sed -i 's/tz_ohos.rs/tz_linux.rs/g' $i/lib.rs
    done
fi

cargo build \
    --release \
    --target ${triple_normalized} \
    -p maestro-core \
    -j ${MAX_JOBS} \
    || exit 1
